Atomic State Managementのパラダイム
#技術の審美眼
#Atomic_State_Management
#プログラミングパラダイム
from
CQRSの時空分割と観測
パラダイム
Render As You Fetchパターン
データフロープログラミング
グラフ構造
Event Sourcing
といった調停役の概念は登場しない
裏では
Event Sourcing
や
ガべージコレクション
の機構はある
dispatcher, actionも存在しない
利用者のインタフェースはget, setだけである
Optics
のパラダイムの産物と言える
遅延束縛
IOモナド
要素
Atom(ASM)
シンタックス
的にはプリミティブな変数
セマンティクス
的には
遅延結合と遅延初期化とリソース更新/破棄の自動化
可能な
アクターモデル
Selector(ASM)
セマンティクス
的にはgetが観測を意味する
Immutable Model
AtomとSelectorの組み合わせの価値
「それがなにか」(What)と「どうするか」(How)の分離
What
: 観測時点の状態のスナップショットを取得する
get
How
: 状態変化のセマンティクスとなる
set
状況によって
カスタムフック
化して
Action
のようにできる
→
Dispatcher
と
Action
を自分でつくれる
インタフェースを変更せずにセマンティクスを変更する
コアなデータ構造を変えることなく継続的な変化に適応するためのCQS
状態を分散できる利点
透過的な
キャッシュ管理
キャッシュを正しく使っていればRead onlyの画面にStateはいらない
遅延結合と遅延初期化とリソース更新/破棄の自動化
ReadModel
の構築を利用者へ委ねられる
分散型アーキテクチャ
を構築しやすい
Recoil > Recoil Sync
Jotai
なら
onMount
Code Splitting, minify
Atomic State Managementは後方互換性を保ちやすい